5. Exhibit B — CALDAV Testing Scenarios
1. | Event creation. |
---|---|
1.1. | Create new single-instance meeting titled “Meeting 1.1” with the location “Durham”. |
1.2. | Create new meeting titled “Meeting 1.2” recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks. |
1.3. | Create new single-instance meeting titled “Meeting 1.3” with 2 other attendees. |
1.4. | Create new single-instance meeting titled “Meeting 1.4” with an alarm set to trigger 15 minutes prior to the schedule time of the meeting. |
2. | Event modification |
2.1. | Modify the title of meeting “Meeting 1.1” to “Meeting 1.1bis”. |
2.2. | Modify the location of the meeting “Meeting 1.1bis” to “Seattle bis”. |
2.3. | Reschedule meeting “Meeting 1.1bis” to the next day. |
2.4. | Add an attendee to “Meeting 1.1bis”. |
2.5. | Add an alarm to “Meeting 1.1bis”. |
2.6. | Modify the title of the 1st instance of the recurring meeting created in 1.2. |
2.7. | Modify the participation status of the 1st attendee in meeting 1.3 to |
2.8. | Cancel the 4th instance of the recurring meeting created in 1.2. |
2.9. | One client changes “Meeting 1.1bis” to a different time, second client ‘refreshes’ its display to see the modification. |
3. | Event retrieval |
3.1. | calendar-query |
3.1.1. | No filtering (match everything) |
3.1.1.1. | Query all components and return all data. (tests <calendar-query> and <filter>) |
3.1.1.2. | Query all components and return ETag WebDAV property and all data. (tests <calendar-query>+ <DAV:prop> and <filter>) |
3.1.1.3. | Query all components and return just entire |
3.1.1.4. | Query all components and return |
3.1.2. | time-range filtering |
3.1.2.1. | Query all components within a one day time-range and return all data. Make sure that there is a recurring event that starts prior to the chosen time-range but has one non-overridden instance within the time-range. (tests <calendar-query> , <filter>+<time-range>) |
3.1.2.2. | Query all components within a one week time-range and return just entire |
3.1.3. | component based filtering |
3.1.3.1. | Query all components that contain an embedded |
3.1.3.2. | Query all components that contain an embedded |
3.1.4. | property based filtering |
3.1.4.1. | Query all components that contain any |
3.1.4.2. | Query all components that contain an |
3.1.4.3. | Query all components that contain an |
3.1.5. | parameter based filtering |
3.1.5.1. | Query all components that contain a |
3.1.5.2. | Query all components that contain an |
3.2. | calendar-multiget |
3.2.1. | Query a specific href and return all data. (tests <calendar-multiget >) |
3.2.2. | Query multiple hrefs (some of which do not exist) and return all data. (tests <calendar-multiget>) |
3.2.3. | Query a specific href and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>) |
3.2.4. | Query multiple hrefs (some of which do not exist) and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>) |
3.2.5. | Query a specific href and return |
3.2.6. | Query multiple hrefs (some of which do not exist) and return |
4. | Event deletion |
4.1. | Delete a single non-recurring meeting. |
4.2. | Delete a single recurring meeting with no overridden instances. |
4.3. | Delete a single recurring meeting with overridden instances. |
4.4. | Delete a non-overridden instance of a recurring meeting. |
4.5. | Delete an overridden instance of a recurring meeting. |
5. | Access Control |
5.1. | View access control details on current user’s main calendar. |
5.2. | Change access control details on current user’s main calendar to add another user with read-only access. Verify that other user can view the calendar but not change it. |
5.3. | Change access control details on current user’s main calendar to add another user with read-write access. Verify that other user can view the calendar and change it. Verify that changes done by one user are seen by the other. |
5.4. | Remove another user’s access to the current user’s main calendar and verify they can no longer access the calendar. |
6 | Calendar Management |
6.1 | Browse the list of calendars on the server, including the current user’s personal calendars. |
6.2 | Create a new calendar in the current user’s personal calendar space. |
6.3 | Create a regular collection in the current user’s personal calendar space. |
6.4 | Create a new calendar inside the collection created in 6.3. |
6.5 | Delete the calendar created in 6.2. |
6.6 | Delete the collection created in 6.3. |